//
// Created by Lenovo on 2024/5/14.
//
#include "main.h"
typedef struct Queue1{
    int *front;
    int *rear;
}Queue1;
Queue1 b;
int init_queue(Queue **q){
    (*q)=(Queue *)malloc(sizeof(Queue));
    if(!*q){
        return 1;
    }
    b.front=(*q)->elements;
    (*q)->size=0;
    b.rear=b.front;
    return 0;
}
int enqueue(Queue *q,int value){
    if(q->size>QUEUE_MAX_SIZE){
        return 1;
    }
    b.rear++;
    q->elements[q->size]=value;
    q->size++;
    return 0;
}
int dequeue(Queue *q,int *value){
    if(b.front==b.rear){
        return 1;
    }
    *value=*(b.front);
    b.front++;
    q->size--;
    return 0;
}
int first(Queue *q,int *value){
    if(b.front==b.rear){
        return 1;
    }
    *value=*(b.front);
    return 0;
}
int is_empty(Queue *q){
    if(q->size==0){return 0;}
    return 1;
}
int size(Queue *q){
    return q->size;
}
int main(){}